home *** CD-ROM | disk | FTP | other *** search
- /* -*-C-*- actfact.h */
- /*-->actfact*/
- /**********************************************************************/
- /****************************** actfact *******************************/
- /**********************************************************************/
-
- float
- actfact(unmodsize)
- register UNSIGN32 unmodsize;
-
- /***********************************************************************
- Compute the actual size factor given the integer approximation unmodsize
- = (magnification factor)*1000. Values not found in the table are
- rounded to the nearest table entry; this ensures that rounding errors,
- or user magnification parameter input errors result in something
- reasonable. mag_table[] has a wider range of magnifications available
- than most sites will have, and can be used to find a nearest match font
- when one is missing.
- ***********************************************************************/
-
- {
- register INT16 k;
- register UNSIGN32 tab_entry;
-
- for (k = 1; k < MAGTABSIZE; ++k)
- {
- tab_entry = MAGSIZE(mag_table[k]); /* round entry */
- if (unmodsize < tab_entry) /* choose nearer of k-1,k entries */
- {
- if (unmodsize < MAGSIZE((mag_table[k-1] + mag_table[k])/2.0))
- k--; /* choose smaller one */
- break;
- }
- else if (unmodsize == tab_entry)
- break;
- }
- mag_index = ((k < MAGTABSIZE) ? k : (MAGTABSIZE-1));/* set global index */
- return((float)mag_table[mag_index]);
- }
-
-
-
-